package fi.uba.algocontrol.model.pistas;

import fi.uba.algocontrol.model.Vector;
import fi.uba.algocontrol.model.aviones.Avion;
import fiuba.algo3.titiritero.modelo.ObjetoPosicionable;

import java.util.Collection;

public abstract class Pista implements ObjetoPosicionable
{
    private Collection<Entrada> entradas = null;
    private Vector posicion = null;
    private Integer ancho = null;
    private Integer alto = null;
    protected Collection<Class> avionesAdmitidos = null;


    public int getX()
    {
        return (int) this.posicion.getX();
    }

    public int getY()
    {
        return (int) this.posicion.getY();
    }

    public Integer getAncho() {
        return ancho;
    }

    public Integer getAlto() {
        return alto;
    }

    public Pista(Vector posicion, Integer alto, Integer ancho, Collection<Entrada> entradas)
    {
        this.posicion = posicion;
        this.alto = alto;
        this.ancho = ancho;
        this.entradas = entradas;
    }

    public Collection<Entrada> getEntradas()
    {
        return this.entradas;
    }

    public Vector getPosicion()
    {
        return this.posicion;
    }

    public boolean puedeAterrizarAvion(Avion avion)
    {
        return this.avionesAdmitidos != null && this.avionesAdmitidos.contains(avion.getClass());
    }
}
